Thread.start(), Thread.sleep(), এবং Thread.join() এর ব্যবহার

Java Technologies - জাভা কনকারেন্সি (Java Concurrency) - Thread Management এবং Control
252

জাভার কনকারেন্সি মাল্টিথ্রেডিং পরিচালনা করার জন্য একটি শক্তিশালী ফিচার। নিচে Thread.start(), Thread.sleep(), এবং Thread.join() এর ভূমিকা ও ব্যবহার বিস্তারিতভাবে ব্যাখ্যা করা হলো:


১. Thread.start()

  • কাজ: নতুন একটি থ্রেড শুরু করে এবং থ্রেডের run() মেথড এক্সিকিউট করে।
  • ব্যাখ্যা: এটি সরাসরি run() কল না করে একটি নতুন থ্রেড তৈরি করে। ফলে কোড মূল থ্রেড থেকে আলাদাভাবে চলে।

উদাহরণ:

class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("Thread is running: " + Thread.currentThread().getName());
    }
}

public class ThreadStartExample {
    public static void main(String[] args) {
        MyThread thread1 = new MyThread();
        thread1.start(); // নতুন থ্রেড শুরু করবে
    }
}

২. Thread.sleep()

  • কাজ: থ্রেডকে নির্দিষ্ট সময়ের জন্য সাময়িকভাবে থামিয়ে দেয়।
  • ব্যাখ্যা: এটি থ্রেডের এক্সিকিউশনকে নির্দিষ্ট মিলিসেকেন্ডের জন্য থামায়, তবে InterruptedException থ্রো করে যদি অন্য থ্রেড এটি বাধাগ্রস্ত করে।

উদাহরণ:

public class ThreadSleepExample {
    public static void main(String[] args) {
        Thread thread = new Thread(() -> {
            try {
                System.out.println("Thread is running...");
                Thread.sleep(2000); // ২ সেকেন্ড থ্রেড থামানো
                System.out.println("Thread resumed after sleep.");
            } catch (InterruptedException e) {
                System.out.println("Thread was interrupted.");
            }
        });

        thread.start();
    }
}

৩. Thread.join()

  • কাজ: একটি থ্রেড শেষ না হওয়া পর্যন্ত অন্য থ্রেডকে অপেক্ষা করায়।
  • ব্যাখ্যা: এটি মূলত একাধিক থ্রেডের ক্রমিক এক্সিকিউশন নিশ্চিত করতে ব্যবহৃত হয়।

উদাহরণ:

public class ThreadJoinExample {
    public static void main(String[] args) {
        Thread thread1 = new Thread(() -> {
            try {
                System.out.println("Thread 1 is running...");
                Thread.sleep(3000); // ৩ সেকেন্ড থামানো
                System.out.println("Thread 1 finished.");
            } catch (InterruptedException e) {
                System.out.println("Thread 1 interrupted.");
            }
        });

        Thread thread2 = new Thread(() -> {
            System.out.println("Thread 2 is running...");
        });

        thread1.start();
        thread2.start();

        try {
            thread1.join(); // Thread 1 শেষ না হওয়া পর্যন্ত অপেক্ষা
            System.out.println("Thread 1 completed. Now executing main thread.");
        } catch (InterruptedException e) {
            System.out.println("Main thread interrupted.");
        }
    }
}

বিস্তারিত উদাহরণ: সবকিছু একত্রে

class Task extends Thread {
    private String taskName;

    public Task(String taskName) {
        this.taskName = taskName;
    }

    @Override
    public void run() {
        try {
            System.out.println(taskName + " is running...");
            Thread.sleep(2000); // ২ সেকেন্ড থ্রেড থামানো
            System.out.println(taskName + " completed.");
        } catch (InterruptedException e) {
            System.out.println(taskName + " was interrupted.");
        }
    }
}

public class ConcurrencyExample {
    public static void main(String[] args) {
        Task task1 = new Task("Task 1");
        Task task2 = new Task("Task 2");

        task1.start(); // Task 1 শুরু
        task2.start(); // Task 2 শুরু

        try {
            task1.join(); // Task 1 শেষ না হওয়া পর্যন্ত অপেক্ষা
            task2.join(); // Task 2 শেষ না হওয়া পর্যন্ত অপেক্ষা
        } catch (InterruptedException e) {
            System.out.println("Main thread interrupted.");
        }

        System.out.println("All tasks completed. Main thread finished.");
    }
}

  1. Thread.start(): নতুন থ্রেড শুরু করে।
  2. Thread.sleep(): থ্রেডকে নির্দিষ্ট সময়ের জন্য থামায়।
  3. Thread.join(): নির্দিষ্ট থ্রেড শেষ না হওয়া পর্যন্ত অপেক্ষা করে।

এই কনসেপ্টগুলো সঠিকভাবে বুঝে ব্যবহার করলে মাল্টিথ্রেডিং অপারেশন সহজ ও কার্যকর করা যায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...